Data storage systems, and in particular random access memories such as static random access memory (SRAM) or dynamic random access memory (DRAM), are well known. Such data storage systems may be employed in a general purpose microprocessor, or used as a resource by a programmable logic device such as a field-programmable gate array (FPGA).
A memory such as SRAM or DRAM depends on a constant supply of power to retain data stored within the memory, and data is lost after the power to the memory is switched off. However, certain physical characteristics of such a memory lead to the phenomenon of data remanence, wherein data is retained in a residual form for some time after power source is removed from the memory. Such residual data can be recovered with some probability by accessing the input/output pins of the memory. The longer a constant datum is kept in a memory cell, the stronger the resulting data remanence, and the greater the probability that the datum can be recovered from the memory cell even after power is switched off.
Data remanence presents security problems for memories within systems using encryption. Such systems may use an encryption or security key, which is stored in a RAM portion of the system. Such systems may additionally include anti-tamper mechanisms, which erase all data in a system if an intrusion is detected. However, an attack based on data remanence inherently occurs when power to the entire system is switched off, rendering any anti-tamper mechanisms inoperable. Because of data remanence, critical data such as the encryption key or the security key may be retained in the RAM portion of the system long enough for an attacker to recover the key. The attacker can restore power to only the RAM portion of the system, recover the key, and use the key to recover critical data present on the system.